package com.gdust.hzx.manager.service;

import com.gdust.hzx.model.dto.system.AssginRoleDto;
import com.gdust.hzx.model.dto.system.LoginDto;
import com.gdust.hzx.model.dto.system.SysUserDto;
import com.gdust.hzx.model.entity.system.SysUser;
import com.gdust.hzx.model.vo.system.LoginVo;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

/**
 * ClassName: SysUserService
 * Package: com.gdust.spzx.service
 * Description:用户表service
 *
 * @Author syun
 * @Create 2024/11/2 22:06
 * @Version 1.0
 */
@Service
public interface SysUserService {
    //用户登录接口
    LoginVo login(LoginDto loginDto);
    //获取用户信息
    SysUser getUserInfo(String token);
    //用户退出功能
    void logout(String token);

    /**
     * 用户条件分页查询接口
     * @param pageNum 当前页
     * @param pageSize 每页记录数
     * @param sysUserDto 请求参数实体类，内含搜索关键字、开始时间和结束时间等信息
     * @return 响应结果实体类返回结果与业务状态码
     */
    PageInfo<SysUser> findByPage(Integer pageNum, Integer pageSize, SysUserDto sysUserDto);

    /**
     * 添加用户接口
     * @param sysUser 系统用户实体类
     */
    void saveSysUser(SysUser sysUser);

    /**
     * 修改用户接口
     * @param sysUser 系统用户实体类
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 用户删除
     * @param userId 用户id
     */
    void deleteById(Long userId);

    /**
     * 用户分配角色 保存分配数据
     * @param assginRoleDto 请求参数实体类
     */
    void doAssign(AssginRoleDto assginRoleDto);
}
